package com.atguigu.jedispool;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

/**
 * Created by Smexy on 2022/10/4
 */
public class Demo5CustomJedisPool
{
    public static void main(String[] args) {

        //自定义池子的配置
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxTotal(20);  //池子的极限容量
        jedisPoolConfig.setMaxIdle(10);  //池中如果没有线程来借连接，最大保持几个连接待命
        jedisPoolConfig.setTestOnReturn(true); //还连接时，要不要先测试下连接，没问题，再放入池子
        jedisPoolConfig.setTestOnBorrow(true);//借连接时，要不要先测试下连接，没问题，再交给借的线程
        jedisPoolConfig.setBlockWhenExhausted(true);//如果连接耗尽了，还有人借连接，让它滚粗，让它等等
        jedisPoolConfig.setMaxWaitMillis(10000);//最多等多久，让它滚粗(抛异常，没连接了)

        JedisPool jedisPool = new JedisPool(jedisPoolConfig,"hadoop102", 6379);

        //从池中中借一个连接
        Jedis jedis = jedisPool.getResource();

        System.out.println(jedis.ping());

        //把连接还回池子
        jedis.close();

        jedisPool.close();

    }
}
